package ru.spb.nicetu.altx.mnemo.node.factory;

import ru.spb.nicetu.altx.mnemo.cell.INodeCell;
import ru.spb.nicetu.altx.mnemo.cell.ManagedNodeCell;
import ru.spb.nicetu.altx.mnemo.node.IStoreMemoryTaskNode;
import ru.spb.nicetu.altx.mnemo.node.LoadTaskNode;

@SuppressWarnings("serial")
public class LoadToMemoryTaskNode extends LoadTaskNode implements IStoreMemoryTaskNode{

	public LoadToMemoryTaskNode(String name, String simpleFuncClassName) {
		super(name, simpleFuncClassName);
	}

	public INodeCell getMemoryNodeCell() {
		INodeCell nodeCell = null;

		if (!getAllSettingCells().isEmpty()) {
			nodeCell = getAllSettingCells().get(1);
			if (nodeCell instanceof ManagedNodeCell)
				return nodeCell;
		} else if (getAllInputCells().size() > 0) {
			nodeCell = getAllInputCells().get(0);
			if (nodeCell instanceof ManagedNodeCell)
				return nodeCell;
		}
		return null;
	}

	public String getMemoryValueClassName() {
		INodeCell nodeCell = getAllOutputCells().get(0);

		if (nodeCell == null)
			return null;

		// Вычисляем тип значения, которое должно хранится в ячейке
		String valueClassName = nodeCell.getValueClassName();
		return valueClassName;
	}

}
